home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993 April: Penguin on DISC / ADC Developer CD (1993-04) (''Penguin On DISC'')_iso / Dev.CD Apr 93.iso / Utilities / MPW Interfaces 7.1 Beta / PInterfaces / AIFF.p < prev    next >
Encoding:
Text File  |  1992-08-28  |  3.8 KB  |  214 lines  |  [TEXT/MPS ]

  1.  
  2. {
  3. Created: Tuesday, February 5, 1991 at 4:32 PM
  4.     AIFF.p
  5.     Pascal Interface to the Macintosh Libraries
  6.  
  7.         Copyright Apple Computer, Inc. 1990-1991
  8.         All rights reserved
  9.  
  10. *** Warning: This is an alpha version of the Interfaces for Cube-E. 
  11. ***          Things may change.  Caveat Programmer.
  12.  
  13.  
  14. }
  15.  
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.     UNIT AIFF;
  23.     INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED UsingAIFF}
  27. {$SETC UsingAIFF := 1}
  28.  
  29. {$I+}
  30. {$SETC AIFFIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32. {$IFC UNDEFINED UsingTypes}
  33. {$I $$Shell(PInterfaces)Types.p}
  34. {$ENDC}
  35. {$SETC UsingIncludes := AIFFIncludes}
  36.  
  37. CONST
  38. AIFFID = 'AIFF';
  39. AIFCID = 'AIFC';
  40. FormatVersionID = 'FVER';
  41. CommonID = 'COMM';
  42. FORMID = 'FORM';
  43. SoundDataID = 'SSND';
  44. MarkerID = 'MARK';
  45. InstrumentID = 'INST';
  46. MIDIDataID = 'MIDI';
  47. AudioRecordingID = 'AESD';
  48. ApplicationSpecificID = 'APPL';
  49. CommentID = 'COMT';
  50. NameID = 'NAME';
  51. AuthorID = 'AUTH';
  52. CopyrightID = '(c) ';
  53. AnnotationID = 'ANNO';
  54. NoLooping = 0;
  55. ForwardLooping = 1;
  56. ForwardBackwardLooping = 2;
  57.  
  58. { AIFF-C Versions }
  59. AIFCVersion1 = $A2805140;
  60.  
  61. { Compression Names }
  62. NoneName = 'not compressed';
  63. ACE2to1Name = 'ACE 2-to-1';
  64. ACE8to3Name = 'ACE 8-to-3';
  65. MACE3to1Name = 'MACE 3-to-1';
  66. MACE6to1Name ='MACE 6-to-1';
  67.  
  68. { Compression Types }
  69. NoneType = 'NONE';
  70. ACE2Type = 'ACE2';
  71. ACE8Type = 'ACE8';
  72. MACE3Type = 'MAC3';
  73. MACE6Type = 'MAC6';
  74.  
  75. TYPE
  76. ID = LONGINT;
  77. MarkerIdType = INTEGER;
  78.  
  79. ChunkHeader = RECORD
  80.     ckID: ID;
  81.     ckSize: LONGINT;
  82.     END;
  83.  
  84. ContainerChunk = RECORD
  85.     ckID: ID;
  86.     ckSize: LONGINT;
  87.     formType: ID;
  88.     END;
  89.  
  90. FormatVersionChunkPtr = ^FormatVersionChunk;
  91. FormatVersionChunk = RECORD
  92.     ckID: ID;
  93.     ckSize: LONGINT;
  94.     timestamp: LONGINT;
  95.     END;
  96.  
  97. CommonChunkPtr = ^CommonChunk;
  98. CommonChunk = RECORD
  99.     ckID: ID;
  100.     ckSize: LONGINT;
  101.     numChannels: INTEGER;
  102.     numSampleFrames: LONGINT;
  103.     sampleSize: INTEGER;
  104.     sampleRate: Extended80;
  105.     END;
  106.  
  107. ExtCommonChunkPtr = ^ExtCommonChunk;
  108. ExtCommonChunk = RECORD
  109.     ckID: ID;
  110.     ckSize: LONGINT;
  111.     numChannels: INTEGER;
  112.     numSampleFrames: LONGINT;
  113.     sampleSize: INTEGER;
  114.     sampleRate: Extended80;
  115.     compressionType: ID;
  116.     compressionName: PACKED ARRAY [0..0] OF Byte;
  117.     END;
  118.  
  119. SoundDataChunkPtr = ^SoundDataChunk;
  120. SoundDataChunk = RECORD
  121.     ckID: ID;
  122.     ckSize: LONGINT;
  123.     offset: LONGINT;
  124.     blockSize: LONGINT;
  125.     END;
  126.  
  127. Marker = RECORD
  128.     id: MarkerIdType;
  129.     position: LONGINT;
  130.     markerName: Str255;
  131.     END;
  132.  
  133. MarkerChunkPtr = ^MarkerChunk;
  134. MarkerChunk = RECORD
  135.     ckID: ID;
  136.     ckSize: LONGINT;
  137.     numMarkers: INTEGER;
  138.     Markers: ARRAY [0..0] OF Marker;
  139.     END;
  140.  
  141. AIFFLoop = RECORD
  142.     playMode: INTEGER;
  143.     beginLoop: MarkerIdType;
  144.     endLoop: MarkerIdType;
  145.     END;
  146.  
  147. InstrumentChunkPtr = ^InstrumentChunk;
  148. InstrumentChunk = PACKED RECORD
  149.     ckID: ID;
  150.     ckSize: LONGINT;
  151.     baseFrequency: Byte;
  152.     detune: Byte;
  153.     lowFrequency: Byte;
  154.     highFrequency: Byte;
  155.     lowVelocity: Byte;
  156.     highVelocity: Byte;
  157.     gain: INTEGER;
  158.     sustainLoop: AIFFLoop;
  159.     releaseLoop: AIFFLoop;
  160.     END;
  161.  
  162. MIDIDataChunkPtr = ^MIDIDataChunk;
  163. MIDIDataChunk = RECORD
  164.     ckID: ID;
  165.     ckSize: LONGINT;
  166.     MIDIdata: PACKED ARRAY [0..0] OF SignedByte;
  167.     END;
  168.  
  169. AudioRecordingChunkPtr = ^AudioRecordingChunk;
  170. AudioRecordingChunk = RECORD
  171.     ckID: ID;
  172.     ckSize: LONGINT;
  173.     AESChannelStatus: PACKED ARRAY [0..23] OF SignedByte;
  174.     END;
  175.  
  176. ApplicationSpecificChunkPtr = ^ApplicationSpecificChunk;
  177. ApplicationSpecificChunk = RECORD
  178.     ckID: ID;
  179.     ckSize: LONGINT;
  180.     applicationSignature: OSType;
  181.     data: PACKED ARRAY [0..0] OF Byte;
  182.     END;
  183.  
  184. Comment = RECORD
  185.     timeStamp: LONGINT;
  186.     marker: MarkerIdType;
  187.     count: INTEGER;
  188.     text: PACKED ARRAY [0..0] OF Byte;
  189.     END;
  190.  
  191. CommentsChunkPtr = ^CommentsChunk;
  192. CommentsChunk = RECORD
  193.     ckID: ID;
  194.     ckSize: LONGINT;
  195.     numComments: INTEGER;
  196.     comments: ARRAY [0..0] OF Comment;
  197.     END;
  198.  
  199. TextChunkPtr = ^TextChunk;
  200. TextChunk = RECORD
  201.     ckID: ID;
  202.     ckSize: LONGINT;
  203.     text: PACKED ARRAY [0..0] OF Byte;
  204.     END;
  205.  
  206.  
  207.  
  208. {$ENDC}    { UsingAIFF }
  209.  
  210. {$IFC NOT UsingIncludes}
  211.     END.
  212. {$ENDC}
  213.  
  214.